package com.ymttest.common.entitie;

import java.math.BigDecimal;

import com.ymatou.query.trading.api.parameter.ProductPromotion;

/**
 * 订单项信息
 */
public class OrderItemInfo {

	/**
     * 是否护航直邮
     */
    private boolean sailProtected;


    /**
     * 价格
     */
    private BigDecimal price = BigDecimal.ZERO;


    /**
     * 订单项相关属性组合信息
     */
    private String propertyInfo;


    /**
     * 商品个数
     */
    private int amount;


    /**
     * 订单项类型
     *
     * @see OrderInfoTypeEnum
     */
    private int itemType;


    /**
     * 商品规格id
     */
    private String catalogId;


    /**
     * 商品id
     */
    private String productId;


    /**
     * 订单项描述
     */
    private String description;


    /**
     * 订单项Id
     */
    private String orderItemId;


    /**
     * 商品图片url
     */
    private String pictureUrl;


    /**
     * 商品详情链接url
     */
    private String referenceUrl;


    /**
     * 商品标题
     */
    private String title;


    /**
     * 商品一级类目
     */
    private int firstCategoryId;


    /**
     * 商品二级类目
     */
    private int subProductCategoryId;

    /**
     * 商品三级类目
     */
    private int thirdCategoryId;


    /**
     * 物流类型
     *
     * @see LogisticsTypeEnum
     */
    private int logisticsType;


    /**
     * 备货状态
     *
     * @see StockStatusEnum
     */
    private int stockStatus;


    /**
     * 新人价补贴
     */
    private BigDecimal premium = BigDecimal.ZERO;


    /**
     * 商品sku
     */
    private String sku;


    /**
     * 是否算入成本（专门用于财务核算）
     */
    private boolean isCost;


    /**
     * 区分新客价或者VIP价
     *
     * @see PriceTypeEnum
     */
    private int priceType;


    /**
     * 保税区
     *
     * @see BondedAreaEnum
     */
    private int bondedArea;


    /**
     * 退货方式(官方、非官方)
     *
     * @see ProductRefundChannelEnum
     */
    private int productRefundChannel;


    /**
     * 订单商品对应的活动信息
     */
    private OrderItemInfoExt orderItemInfoExt;


    /**
     * 平摊商家优惠券金额
     */
    private BigDecimal sellerCouponAmount;


    /**
     * 平摊码头平台优惠券金额
     */
    private BigDecimal ymtCouponAmount;


    /**
     * 平摊调整金额
     */
    private BigDecimal discount;


    /**
     * 运费商品分摊金额
     */
    private BigDecimal freight;


    /**
     * 商品成交价
     */
    private BigDecimal productPrice;


    /**
     * 商品退款单号
     */
    private String refundBillNo;

    /**
     * 退款状态
     *
     * @see SalesRefundStatusEnum
     */
    private Integer refundStatus;


    /**
     * 申请成功或申请中退款运费金额
     */
    private BigDecimal refundFreight = BigDecimal.ZERO;

    /**
     * 商品原价
     */
    private BigDecimal productOriginalPrice;


    /**
     * 关税承担类型(0-卖家承担1-买家承担)
     */
    private int tariffType;


    /**
     * 销售类型
     * .net端 兼容 java式枚举
     *
     * @see SalesTypeStringEnum
     */
    private String salesType;


    /**
     * 商品优惠信息
     */
    private ProductPromotion promotion;

    /**
     * 平台优惠金额
     */
    private BigDecimal ymtPromotionAmount;


    /**
     * 是否支持7天无条件退款
     */
    private boolean supportRtnWithoutReason;


    /**
     * 是否为免运费标识
     */
    private Boolean freightFree;

    /**
     * 是否预售商品
     */
    private boolean preSale;

    /**
     * 第三方优惠金额
     */
    private BigDecimal thirdPartyDiscount = BigDecimal.ZERO;

    /**
     * 商品快照
     */
    private String productVer;

    /**
     * 是否PSP商品
     */
    private boolean pspProduct;

    /**
     * 原产地
     */
    private String countryOfOrigin;

    /**
     * 原产地国旗
     */
    private String countryFlagUrl;

    /**
     * 最大可退商品金额
     */
    private BigDecimal maxCanRefundProAmount;
    
    /**
     * 从上级获取的价格
     */
    private BigDecimal vendorPrice = BigDecimal.ZERO;

	public boolean isSailProtected() {
		return sailProtected;
	}

	public void setSailProtected(boolean sailProtected) {
		this.sailProtected = sailProtected;
	}

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public String getPropertyInfo() {
		return propertyInfo;
	}

	public void setPropertyInfo(String propertyInfo) {
		this.propertyInfo = propertyInfo;
	}

	public int getAmount() {
		return amount;
	}

	public void setAmount(int amount) {
		this.amount = amount;
	}

	public int getItemType() {
		return itemType;
	}

	public void setItemType(int itemType) {
		this.itemType = itemType;
	}

	public String getCatalogId() {
		return catalogId;
	}

	public void setCatalogId(String catalogId) {
		this.catalogId = catalogId;
	}

	public String getProductId() {
		return productId;
	}

	public void setProductId(String productId) {
		this.productId = productId;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getOrderItemId() {
		return orderItemId;
	}

	public void setOrderItemId(String orderItemId) {
		this.orderItemId = orderItemId;
	}

	public String getPictureUrl() {
		return pictureUrl;
	}

	public void setPictureUrl(String pictureUrl) {
		this.pictureUrl = pictureUrl;
	}

	public String getReferenceUrl() {
		return referenceUrl;
	}

	public void setReferenceUrl(String referenceUrl) {
		this.referenceUrl = referenceUrl;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public int getFirstCategoryId() {
		return firstCategoryId;
	}

	public void setFirstCategoryId(int firstCategoryId) {
		this.firstCategoryId = firstCategoryId;
	}

	public int getSubProductCategoryId() {
		return subProductCategoryId;
	}

	public void setSubProductCategoryId(int subProductCategoryId) {
		this.subProductCategoryId = subProductCategoryId;
	}

	public int getThirdCategoryId() {
		return thirdCategoryId;
	}

	public void setThirdCategoryId(int thirdCategoryId) {
		this.thirdCategoryId = thirdCategoryId;
	}

	public int getLogisticsType() {
		return logisticsType;
	}

	public void setLogisticsType(int logisticsType) {
		this.logisticsType = logisticsType;
	}

	public int getStockStatus() {
		return stockStatus;
	}

	public void setStockStatus(int stockStatus) {
		this.stockStatus = stockStatus;
	}

	public BigDecimal getPremium() {
		return premium;
	}

	public void setPremium(BigDecimal premium) {
		this.premium = premium;
	}

	public String getSku() {
		return sku;
	}

	public void setSku(String sku) {
		this.sku = sku;
	}

	public boolean isCost() {
		return isCost;
	}

	public void setCost(boolean isCost) {
		this.isCost = isCost;
	}

	public int getPriceType() {
		return priceType;
	}

	public void setPriceType(int priceType) {
		this.priceType = priceType;
	}

	public int getBondedArea() {
		return bondedArea;
	}

	public void setBondedArea(int bondedArea) {
		this.bondedArea = bondedArea;
	}

	public int getProductRefundChannel() {
		return productRefundChannel;
	}

	public void setProductRefundChannel(int productRefundChannel) {
		this.productRefundChannel = productRefundChannel;
	}

	public OrderItemInfoExt getOrderItemInfoExt() {
		return orderItemInfoExt;
	}

	public void setOrderItemInfoExt(OrderItemInfoExt orderItemInfoExt) {
		this.orderItemInfoExt = orderItemInfoExt;
	}

	public BigDecimal getSellerCouponAmount() {
		return sellerCouponAmount;
	}

	public void setSellerCouponAmount(BigDecimal sellerCouponAmount) {
		this.sellerCouponAmount = sellerCouponAmount;
	}

	public BigDecimal getYmtCouponAmount() {
		return ymtCouponAmount;
	}

	public void setYmtCouponAmount(BigDecimal ymtCouponAmount) {
		this.ymtCouponAmount = ymtCouponAmount;
	}

	public BigDecimal getDiscount() {
		return discount;
	}

	public void setDiscount(BigDecimal discount) {
		this.discount = discount;
	}

	public BigDecimal getFreight() {
		return freight;
	}

	public void setFreight(BigDecimal freight) {
		this.freight = freight;
	}

	public BigDecimal getProductPrice() {
		return productPrice;
	}

	public void setProductPrice(BigDecimal productPrice) {
		this.productPrice = productPrice;
	}

	public String getRefundBillNo() {
		return refundBillNo;
	}

	public void setRefundBillNo(String refundBillNo) {
		this.refundBillNo = refundBillNo;
	}

	public Integer getRefundStatus() {
		return refundStatus;
	}

	public void setRefundStatus(Integer refundStatus) {
		this.refundStatus = refundStatus;
	}

	public BigDecimal getRefundFreight() {
		return refundFreight;
	}

	public void setRefundFreight(BigDecimal refundFreight) {
		this.refundFreight = refundFreight;
	}

	public BigDecimal getProductOriginalPrice() {
		return productOriginalPrice;
	}

	public void setProductOriginalPrice(BigDecimal productOriginalPrice) {
		this.productOriginalPrice = productOriginalPrice;
	}

	public int getTariffType() {
		return tariffType;
	}

	public void setTariffType(int tariffType) {
		this.tariffType = tariffType;
	}

	public String getSalesType() {
		return salesType;
	}

	public void setSalesType(String salesType) {
		this.salesType = salesType;
	}

	public ProductPromotion getPromotion() {
		return promotion;
	}

	public void setPromotion(ProductPromotion promotion) {
		this.promotion = promotion;
	}

	public BigDecimal getYmtPromotionAmount() {
		return ymtPromotionAmount;
	}

	public void setYmtPromotionAmount(BigDecimal ymtPromotionAmount) {
		this.ymtPromotionAmount = ymtPromotionAmount;
	}

	public boolean isSupportRtnWithoutReason() {
		return supportRtnWithoutReason;
	}

	public void setSupportRtnWithoutReason(boolean supportRtnWithoutReason) {
		this.supportRtnWithoutReason = supportRtnWithoutReason;
	}

	public Boolean getFreightFree() {
		return freightFree;
	}

	public void setFreightFree(Boolean freightFree) {
		this.freightFree = freightFree;
	}

	public boolean isPreSale() {
		return preSale;
	}

	public void setPreSale(boolean preSale) {
		this.preSale = preSale;
	}

	public BigDecimal getThirdPartyDiscount() {
		return thirdPartyDiscount;
	}

	public void setThirdPartyDiscount(BigDecimal thirdPartyDiscount) {
		this.thirdPartyDiscount = thirdPartyDiscount;
	}

	public String getProductVer() {
		return productVer;
	}

	public void setProductVer(String productVer) {
		this.productVer = productVer;
	}

	public boolean isPspProduct() {
		return pspProduct;
	}

	public void setPspProduct(boolean pspProduct) {
		this.pspProduct = pspProduct;
	}

	public String getCountryOfOrigin() {
		return countryOfOrigin;
	}

	public void setCountryOfOrigin(String countryOfOrigin) {
		this.countryOfOrigin = countryOfOrigin;
	}

	public String getCountryFlagUrl() {
		return countryFlagUrl;
	}

	public void setCountryFlagUrl(String countryFlagUrl) {
		this.countryFlagUrl = countryFlagUrl;
	}

	public BigDecimal getMaxCanRefundProAmount() {
		return maxCanRefundProAmount;
	}

	public void setMaxCanRefundProAmount(BigDecimal maxCanRefundProAmount) {
		this.maxCanRefundProAmount = maxCanRefundProAmount;
	}

	public BigDecimal getVendorPrice() {
		return vendorPrice;
	}

	public void setVendorPrice(BigDecimal vendorPrice) {
		this.vendorPrice = vendorPrice;
	}
}